.\"                                      Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH LSMI-MOUSE 1 "May 15, 2012"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh        disable hyphenation
.\" .hy        enable hyphenation
.\" .ad l      left justify
.\" .ad b      justify to both left and right margins
.\" .nf        disable filling
.\" .fi        enable filling
.\" .br        insert line break
.\" .sp <n>    insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME

lsmi-mouse \- Linux Pseudo MIDI Input -- Mouse
.SH SYNOPSIS
.B lsmi-mouse
.RI [ options ] " files" ...
.SH DESCRIPTION

This driver is capable of generating a stream of MIDI controller and/or note
events from the state of mouse buttons. I have a MouseSystems serial mouse
controller board with footswitches wired to each of its three buttons. You
must have evdev and the kernel driver for your mouse type loaded (in my
case, this is sermouse). Mouse axes, wheels, or additional buttons are not
used (if you can think of something to do with them [rotary encoders for
filter and resonance?], then, by all means, let me know).

I use this device to control Freewheeling and various softsynths. Much
cheaper than a real MIDI pedalboard, of this I assure you.

.SH EXAMPLE

Use mouse device "/dev/input/event4", mapping left button
to Controller #64, middle button to Note #36, and
right button to Note #37 (all on Channel #1):
.br
.B lsmi-mouse -d /dev/input/event4 -1 c:1:64 -2 n:1:36 -3 n:1:37

.SH USAGE

Distribution specific init scripts are not included. The drivers may be
started from init, your .bashrc, by qjackctl, etc. In order to be run by a
non-root user the drivers must have access to the device files in /dev/input.
This may be accomplished by adding a group 'input', adding desired users to
this group, and configuring udev to assign the appropriate ownership to files
in /dev/input. It should be perfectly safe to run the drivers as root,
however.

For realtime scheduling (the \-R option), either use set_rlimits, or set the
appropriate POSIX capabilities on the executable:
.P
/sbin/setcap cap_ipc_lock,cap_sys_nice=ep /usr/bin/lsmi-joystick
.P
The lsmi.SlackBuild script already includes RT scheduling support.

.SH OPTIONS
.TP
.B \-h, \-\-help
Show summary of options.
.TP
.B \-d, \-\-device specialfile
Event device to use (instead of event0).
.TP
.B \-R, \-\-realtime rtprio 
Use realtime priority 'rtprio' (requires privs).
.TP
.B \-v, \-\-verbose
Be verbose (show note events).
.TP
.B \-p, \-\-port client:port
Connect to ALSA Sequencer client on startup.
.TP
.B \-1, \-\-button-one 'c'|'n':n:n
Button mapping.
.TP
.B \-2, \-\-button-two 'c'|'n':n:n
Button mapping.
.TP
.B \-3, \-\-button-thrree 'c'|'n':n:n 
Button mapping.
.TP
.B \-z, \-\-daemon
Fork and don't print anything to stdout.
.SH SEE ALSO
.BR lsmi-joystick (1),
.BR lsmi-keyhack (1),
.BR lsmi-monterey (1).
.br
.SH AUTHOR
lsmi was written by Jonathan Moore Liles.
.PP
This manual page was written by Ariel Errera <ariel@musix.org.ar>,
for the Debian project (but may be used by others). It was then modified
by B. Watson for the SlackBuilds.org project.
